#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>

char* my_strstr(const char* str1, const char* str2)
{
	const char* s1 = NULL;
	const char* s2 = NULL;
	char* cp = (char*)str1;
	if (*str2 == NULL)
	{
		return (char*)str1;
	}
	while (*cp)
	{
		s1 = cp;
		s2 = str2;
		while (*s1 && *s2 && (*s1 == *s2))
		{
			s1++;
			s2++;
		}
		if (*s2 == '\0')
		{
			return (char*)cp;
		}
		cp++;
	}
	return NULL;
}

int main()
{
	char string1[] = "abbbcde";
	char string2[] = "bcde";
	char* ch = my_strstr(string1, string2);
	printf("%s\n", ch);
	return 0;
}

//char* my_strstr(const char* str1, const char* str2)
//{
//	char* ret = NULL;
//	size_t len = strlen(str2);
//	while (str1 != NULL)
//	{
//		str1 = strchr(str1, str2[0]);
//		if (str1 != NULL)
//		{
//			if (strncmp(str1, str2, len) == 0)
//			{
//				ret = str1;
//				break;
//			}
//			str1++;
//		}
//	}
//	return ret;
//}

//char* strrstr(const char* str1, const char* str2)
//{
//	assert(str1 && str2);
//	char* ret = NULL;
//	while (str1 != NULL)
//	{
//		str1 = strstr(str1, str2);
//		if (str1 != NULL)
//		{
//			ret = str1;
//			str1++;
//		}
//	}
//	return ret;
//}